package main

func main() {

}

/*
*
快慢指针
快指针一次跳2步
慢指针一次跳1步
快慢指针相遇的时候
快指针从0再次出发
第二次相遇的时候就是入环节点处
*/
func findDuplicate(nums []int) int {
	slow := 0
	fast := 0
	slow = nums[slow]
	fast = nums[nums[fast]]
	for slow != fast {
		slow = nums[slow]
		fast = nums[nums[fast]]
	}
	pre1 := 0
	pre2 := slow
	for pre1 != pre2 {
		pre1 = nums[pre1]
		pre2 = nums[pre2]
	}
	return pre1
}
